package com.xyht.sca_s.student_manage_system.modules.examinePaymentInfrastructure.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.xyht.sca_s.student_manage_system.common.commonReturn.ResponseResult;
import com.xyht.sca_s.student_manage_system.modules.examinePaymentEquipment.entity.req.SmsPaymentExamineCancelReq;
import com.xyht.sca_s.student_manage_system.modules.examinePaymentEquipment.entity.req.SmsPaymentExamineEquipmentDetailTorsionReq;
import com.xyht.sca_s.student_manage_system.modules.examinePaymentEquipment.entity.req.SmsPaymentExamineEquipmentForcedReq;
import com.xyht.sca_s.student_manage_system.modules.examinePaymentInfrastructure.entity.SmsPaymentExamineInfrastructure;
import com.xyht.sca_s.student_manage_system.modules.examinePaymentInfrastructure.entity.req.SmsPaymentExamineInfrastructureAllowReq;
import com.xyht.sca_s.student_manage_system.modules.examinePaymentInfrastructure.entity.req.SmsPaymentExamineInfrastructureHistoryReq;
import com.xyht.sca_s.student_manage_system.modules.examinePaymentInfrastructure.entity.req.SmsPaymentExamineInfrastructureReq;

import javax.servlet.http.HttpServletResponse;
import java.util.concurrent.Future;

/**
 * <p>
 * 付款审批表（基础建设） 服务类
 * </p>
 *
 * @author XYHT
 * @since 2023-07-16
 */
public interface SmsPaymentExamineInfrastructureService extends IService<SmsPaymentExamineInfrastructure> {
    ResponseResult addPaymentExamine(SmsPaymentExamineInfrastructureReq req, String user_id);

    ResponseResult cancelPaymentExamine(SmsPaymentExamineCancelReq smsPaymentExamineCancelReq, String user_id);

    ResponseResult getPaymentExamineList(String user_id,
                                         Integer examine_type,
                                         String search_str,
                                         Integer pageNum,
                                         Integer pageSize);

    ResponseResult getPaymentExamineDetail(String examine_id,String user_id);

    ResponseResult allowPaymentExamine(SmsPaymentExamineInfrastructureAllowReq smsPaymentExamineAllowReq, String user_id);

    ResponseResult getPaymentExamineOriginSettingProcess();

    Future<ResponseResult> tableDownload(String examine_id, HttpServletResponse response);

    ResponseResult getExamineHistoryList(String real_name,String examine_id,String contract_name,String contract_num,
                                         Integer pageNum,
                                         Integer pageSize,
                                         Integer status);

    Future<ResponseResult> exportExamineHistoryList(SmsPaymentExamineInfrastructureHistoryReq req, HttpServletResponse response);

    ResponseResult forcedFinishPayment(String applyId,String userId);

    ResponseResult forcedTorsionPayment(SmsPaymentExamineEquipmentDetailTorsionReq torsionVO);

    ResponseResult replaceApplyTorsionPayment(String userId, SmsPaymentExamineInfrastructureAllowReq allowVO);

    ResponseResult forcedRejectPayment(SmsPaymentExamineEquipmentForcedReq forcedReq, String userId);
}
